// 封装请求
import axios from "axios";


// 创建axios实例
const request = axios.create({
  baseURL: "http://127.0.0.1:8080/api",
  timeout: 15000, //设置15秒超时
  headers: {
    "Content-Type": "application/json"
  }
})


// 添加请求拦截
request.interceptors.request.use(config => { 
        //发送请求前需要执行的操作
        const token = localStorage.getItem('token')
        //假设有token
        if (token) {
            config.headers['Authorization'] = `Bearer ${token}`
        }
        return config
    },
    error => {
        console.error("请求拦截错误")
        //请求错误处理
        return Promise.reject(error)
    }   
 )

//  相应拦截
request.interceptors.response.use(response => { 
        const res = response.data
        if(res.code &&res.code !== 200){
            console.warn("业务错误",res.message)
            return Promise.reject(new Error(res.message))
    }
    return res
}, error => { 
    // 获取响应状态码
    const status = error.response?.status
    switch(status){
        case 400:
            console.warn("请求参数错误")
            break;
        case 401:
            console.warn("请求参数错误")
            break;
        case 404:
            console.warn("接口地址不存在")
            break;
        case 500:
            console.warn("服务器内部错误")
            break;
    }
    return Promise.reject(error)    
})
export default request;
//  封装post请求
